/**
 * 
 */
package pruebas.VerduleriaOl.dominio;

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;

import pruebas.VerduleriaOl.dominio.entidades.Carrito;
import pruebas.VerduleriaOl.dominio.entidades.Cliente;
import pruebas.VerduleriaOl.dominio.repositorios.RepoCarrito;
import pruebas.VerduleriaOl.dominio.repositorios.RepoCliente;

import com.intelap.fabricaciones.UnidadTrabajo;

/** @author ggpollit */
@ConversationScoped
public class ConversacionCliente implements Serializable {
	@Inject
	private SesionCliente sesionCliente;
	@Inject
	private transient RepoCarrito repoCarrito;
	@Inject
	private transient RepoCliente repoCliente;
	@Inject
	private UnidadTrabajo ut;

	@PostConstruct
	private void postConstruct() {
		String nombreClienteLogueado = sesionCliente.getNombreClienteLogueado();
		this.clienteLogueado = this.repoCliente.buscarCliente(nombreClienteLogueado);
		if (clienteLogueado == null) {
			clienteLogueado = this.repoCliente.crearNuevoCliente();
			clienteLogueado.setNombre(nombreClienteLogueado);
			clienteLogueado.setCarrito(this.repoCarrito.crearNuevoCarrito());
			ut.cometerYContinuar();
		}
	}

	private Cliente clienteLogueado;
	public Cliente getClienteLogueado() {
		return this.clienteLogueado;
	}

	public Carrito getCarritoLogueado() {
		return this.getClienteLogueado().getCarrito();
	}
}
